package vistas;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.WindowConstants;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;

import modelo.Ingrediente;
import modelo.Producto;


public class JFProducto  extends javax.swing.JDialog{
	private JPanel JPProducto;
	private JPanel JPEntrada;
	private JTextField JTCodigoP;
	private JComboBox JCCategoria;
	private JButton JBEliminar;
	private JButton JBCancelar;
	private JButton JBGuardar;
	private JButton JBSustituir;
	private JComboBox JCIngredienteProducto;
	private JTextField jTCantidad;
	private JLabel jLIngrediente;
	private JLabel JLCantidad;
	private JButton JBAgregar;
	private JTable JTableIngrediente;
	private JButton jButton3;
	private JButton jButton2;
	private JButton JBRemover;
	private JPanel JPIngredientes;
	private JLabel JLCategoria;
	private JTextField JTDescripcion;
	private JLabel JLDescripcion;
	private JButton JBBuscar;
	private JLabel JLCodigoP;
	private JLabel JLBsF;
	private JLabel JLPrecio;
	private JTextField JTPrecio;

	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JFProducto inst = new JFProducto();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public JFProducto() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			this.setTitle("Laboratorio  Burguer");
			{
				JPProducto = new JPanel();
				getContentPane().add(JPProducto, BorderLayout.CENTER);
				JPProducto.setLayout(null);
				JPProducto.setBorder(BorderFactory.createTitledBorder("Actualizar Producto"));
				JPProducto.setPreferredSize(new java.awt.Dimension(653, 612));
				{
					JPEntrada = new JPanel();
					JPProducto.add(JPEntrada);
					JPEntrada.setLayout(null);
					JPEntrada.setBounds(32, 36, 587, 197);
					JPEntrada.setBorder(BorderFactory.createTitledBorder("Datos del Producto"));
					{
						JLCodigoP = new JLabel();
						JPEntrada.add(JLCodigoP);
						JLCodigoP.setText("Código:");
						JLCodigoP.setBounds(82, 42, 82, 15);
					}
					{
						JTCodigoP = new JTextField();
						JPEntrada.add(JTCodigoP);
						JTCodigoP.setBounds(165, 42, 85, 22);
					}
					{
						JBBuscar = new JButton();
						JPEntrada.add(JBBuscar);
						JBBuscar.setText("Buscar");
						JBBuscar.setBounds(389, 37, 95, 27);
						JBBuscar.setActionCommand("Buscar");
					}
					{
						JLDescripcion = new JLabel();
						JPEntrada.add(JLDescripcion);
						JLDescripcion.setText("Descripción:");
						JLDescripcion.setBounds(52, 73, 113, 15);
					}
					{
						JTDescripcion = new JTextField();
						JPEntrada.add(JTDescripcion);
						JTDescripcion.setBounds(165, 70, 129, 22);
					}
					{
						JLCategoria = new JLabel();
						JPEntrada.add(JLCategoria);
						JLCategoria.setText("Categoría:");
						JLCategoria.setBounds(63, 102, 114, 15);
					}
					{
						
						JCCategoria = new JComboBox();
						JPEntrada.add(JCCategoria);
						JCCategoria.setBounds(165, 98, 130, 22);
					}
					{
						JTPrecio = new JTextField();
						JPEntrada.add(JTPrecio);
						JTPrecio.setBounds(165, 133, 130, 22);
					}
					{
						JLPrecio = new JLabel();
						JPEntrada.add(JLPrecio);
						JLPrecio.setText("Precio de Venta:");
						JLPrecio.setBounds(24, 136, 146, 15);
					}
					{
						JLBsF = new JLabel();
						JPEntrada.add(JLBsF);
						JLBsF.setText("BsF");
						JLBsF.setBounds(307, 136, 38, 15);
					}
				}
				{
					JBEliminar = new JButton();
					JPProducto.add(JBEliminar);
					JBEliminar.setText("Eliminar");
					JBEliminar.setBounds(388, 565, 104, 30);
					JBEliminar.setActionCommand("Eliminar");
				}
				{
					JBGuardar = new JButton();
					JPProducto.add(JBGuardar);
					JBGuardar.setText("Guardar");
					JBGuardar.setBounds(256, 565, 114, 30);
				}
				{
					JBCancelar = new JButton();
					JPProducto.add(JBCancelar);
					JBCancelar.setText("Cancelar");
					JBCancelar.setBounds(510, 565, 109, 30);
					JBCancelar.setActionCommand("Cancelar");
				}
				{
					JPIngredientes = new JPanel();
					JPProducto.add(JPIngredientes);
					JPIngredientes.setBorder(BorderFactory.createTitledBorder("Ingredientes del producto"));
					JPIngredientes.setLayout(null);
					JPIngredientes.setBounds(27, 256, 592, 268);
			       	tabla();
					
					{
						JBAgregar = new JButton();
						JPIngredientes.add(JBAgregar);
						JBAgregar.setText("Agregar");
						JBAgregar.setBounds(474, 120, 102, 22);
						JBAgregar.setActionCommand("Agregar");
					}
					{
						JBRemover = new JButton();
						JPIngredientes.add(JBRemover);
						JBRemover.setText("Remover");
						JBRemover.setBounds(474, 159, 102, 22);
						JBRemover.setActionCommand("Remover");
					}
					{
						jLIngrediente = new JLabel();
						JPIngredientes.add(jLIngrediente);
						jLIngrediente.setText("Ingrediente: ");
						jLIngrediente.setBounds(17, 43, 120, 15);
					}
					{				
						jTCantidad = new JTextField();
						JPIngredientes.add(jTCantidad);
						jTCantidad.setBounds(381, 40, 30, 22);
					}
					{
						JCIngredienteProducto = new JComboBox();
						JPIngredientes.add(JCIngredienteProducto);
						JCIngredienteProducto.setBounds(107, 39, 158, 22);
					}
					{
						JLCantidad = new JLabel();
						JPIngredientes.add(JLCantidad);
						JLCantidad.setText("Cantidad: ");
						JLCantidad.setBounds(298, 43, 96, 15);
					}

				}
				
			}
			pack();
			this.setSize(673, 657);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

public JTable getJTableIngrediente() {
		return JTableIngrediente;
	}

	public void setJTableIngrediente(JTable jTableIngrediente) {
		JTableIngrediente = jTableIngrediente;
	}

	public JComboBox getJCIngredienteProducto() {
		return JCIngredienteProducto;
	}

	public void setJCIngredienteProducto(JComboBox jCIngredienteProducto) {
		JCIngredienteProducto = jCIngredienteProducto;
	}
	
	public void tabla(){
		
			TableModel JTIngredienteModel = 
				new DefaultTableModel(
						new String[][] { },
						new String[] { "Codigo", "Ingrediente", "Existencia" });
			JTableIngrediente = new JTable();
			JPIngredientes.add(JTableIngrediente);
			JTableIngrediente.setModel(JTIngredienteModel);
			JTableIngrediente.setBounds(12, 87, 456, 137);
		
	}

	public JTextField getjTCantidad() {
		return jTCantidad;
	}

	public void setjTCantidad(JTextField jTCantidad) {
		this.jTCantidad = jTCantidad;
	}

	public void addListener(ActionListener actionListener){
		this.JBGuardar.addActionListener(actionListener);
		this.JBCancelar.addActionListener(actionListener);
		this.JBEliminar.addActionListener(actionListener);
		this.JBBuscar.addActionListener(actionListener);
		this.JBRemover.addActionListener(actionListener);
		this.JBAgregar.addActionListener(actionListener);
	}
		
	public JTextField getJTCodigoP() {
		return JTCodigoP;
	}

	public void setJTCodigoP(JTextField jTCodigoP) {
		JTCodigoP = jTCodigoP;
	}

	public JComboBox getJCCategoria() {
		return JCCategoria;
	}

	public void setJCCategoria(JComboBox jCCategoria) {
		JCCategoria = jCCategoria;
	}

	public JTextField getJTDescripcion() {
		return JTDescripcion;
	}

	public void setJTDescripcion(JTextField jTDescripcion) {
		JTDescripcion = jTDescripcion;
	}

	public JTextField getJTPrecio() {
		return JTPrecio;
	}

	public void setJTPrecio(JTextField jTPrecio) {
		JTPrecio = jTPrecio;
	}
	
public void limpiar()
	
	{
	    JTCodigoP.setText(" ");
	    JTDescripcion.setText(" ");
	   tabla();
	    JTPrecio.setText(" ");
	    jTCantidad.setText(" ");
		JBGuardar.setText("Guardar");
		 JTCodigoP.enable(true);
	}
	
	public void  mostrarMensaje(String mensaje){
		JOptionPane.showMessageDialog(this, mensaje);
			
	}
	
   public void llenarCampos(Producto producto)
   {
		
	   JTCodigoP.setText(producto.getCodProducto());
	   JTDescripcion.setText(producto.getDescripcionProducto());
	   JTPrecio.setText(producto.getPrecioProducto());
	   JCCategoria.setSelectedItem(producto.getCategoriaProducto());
	   JTCodigoP.enable(false);
		JBGuardar.setText("Actualizar");
				
	}

   
   public void setcargarComboCategoria(List<String> producto) 
	{
		ComboBoxModel JCIngredienteModel =  new DefaultComboBoxModel(producto.toArray());
		JCCategoria.setModel(JCIngredienteModel);   
	}
   
   public void setcargarComboIngrediente(List<String> producto) 
	{
		ComboBoxModel JCIngredienteModel =  new DefaultComboBoxModel(producto.toArray());
		JCIngredienteProducto.setModel(JCIngredienteModel);   
	}
   
   public void setIngredientes(AbstractTableModel abstractTableModel) {
	   JTableIngrediente.setModel(abstractTableModel);
	}
}
